#include <func.h>
#include "queue.h"

//定义公共部分如阻塞队列，锁，条件变量，线程id,线程数量
typedef struct status_s{
    int num;//子线程的数量
    pthread_t* pid;//子线程的id,存放在一个数组里面
    queue_t pQueue;//阻塞队列
    pthread_mutex_t lock;//互斥锁
    pthread_cond_t cond;//条件变量
                        
    int exit_flags;//退出标记位
}statu_t;

//初始化公共部分
int init_status(statu_t *status,int num);

//启动子线程
int init_pthread(statu_t* status);

//创建三次握手的socket
int init_socket(int *socket_fd,char *port,char *ip);

//添加要监听的对象
int add_epoll(int epoll_fd,int socket_fd);

//开始执行子线程，子线程取任务，无任务时等待唤醒
void* thread_main(void* status);

//子线程与客户端进行交互
int do_work(int fd);
